CustomButtonWidget

A custom ButtonWidget implementation with builder and rendering improvements (and more features in general)

This constructor is for subclasses of this widget only. Buttons should be constructed with the builder, like vanilla buttons.

Author

fzzyhmstrs

Since

0.5.?

Parameters

x

button X position

y

button Y position

width

button width in pixels

height

button height in pixels

pressAction

Consumer<CustomButtonWidget> action to invoke when the button is clicked or activated

narrationSupplier

ButtonWidget.NarrationSupplier same use as in vanilla; converts a provided input text into a narration text.

narrationAppender

Consumer<NarrationMessageBuilder> unlike the supplier, this is used to directly append additional narrations as needed to the message builder.

textures

TextureSet, default CustomPressableWidget.DEFAULT_TEXTURES. The textures for this button

child

TooltipChild, used to pass additional tooltip context. This button will pass and tooltip from this child out to its own parent (this button is also a TooltipChild)

renderMessage

If false, the label won't be rendered

Types

Link copied to clipboard
class Builder(message: Text, onPress: Consumer<CustomButtonWidget>)
Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
var message: Text
Link copied to clipboard
Link copied to clipboard
@Nullable
@get:Nullable
var tooltip: Tooltip?
Link copied to clipboard
Link copied to clipboard
var x: Int
Link copied to clipboard
var y: Int

Functions

Link copied to clipboard
override fun appendNarrations(builder: NarrationMessageBuilder)
Link copied to clipboard
open fun charTyped(chr: Char, modifiers: Int): Boolean
Link copied to clipboard
open fun drawMessage(context: DrawContext?, textRenderer: TextRenderer?, color: Int)

open fun drawMessage(context: DrawContext, textRenderer: TextRenderer, x: Int, y: Int, width: Int, height: Int, color: Int)

Draws the widgets message with standard edge padding and positioning.

Link copied to clipboard
open fun drawTexture(context: DrawContext, texture: Identifier, x: Int, y: Int, u: Int, v: Int, hoveredVOffset: Int, width: Int, height: Int, textureWidth: Int, textureHeight: Int)
Link copied to clipboard
open override fun forEachChild(consumer: Consumer<ClickableWidget>)
Link copied to clipboard
@Nullable
open fun getFocusedPath(): GuiNavigationPath?
Link copied to clipboard
open override fun getHeight(): Int
Link copied to clipboard
open override fun getNavigationFocus(): ScreenRect
Link copied to clipboard
@Nullable
open override fun getNavigationPath(navigation: GuiNavigation): GuiNavigationPath?
Link copied to clipboard
open override fun getType(): Selectable.SelectionType
Link copied to clipboard
open override fun getWidth(): Int
Link copied to clipboard
open fun isHovered(): Boolean
Link copied to clipboard
open override fun isMouseOver(mouseX: Double, mouseY: Double): Boolean
Link copied to clipboard
open override fun isNarratable(): Boolean
Link copied to clipboard
open fun isSelected(): Boolean
Link copied to clipboard
open fun keyReleased(keyCode: Int, scanCode: Int, modifiers: Int): Boolean
Link copied to clipboard
open override fun mouseClicked(mouseX: Double, mouseY: Double, button: Int): Boolean
Link copied to clipboard
open override fun mouseDragged(mouseX: Double, mouseY: Double, button: Int, deltaX: Double, deltaY: Double): Boolean
Link copied to clipboard
open fun mouseMoved(mouseX: Double, mouseY: Double)
Link copied to clipboard
open override fun mouseReleased(mouseX: Double, mouseY: Double, button: Int): Boolean
Link copied to clipboard
open fun mouseScrolled(mouseX: Double, mouseY: Double, amount: Double): Boolean
Link copied to clipboard
open override fun onPress()

Action invoked whenever the button is clicked on or activated with Enter.

Link copied to clipboard
open fun onRelease(mouseX: Double, mouseY: Double)
Link copied to clipboard
open fun playDownSound(soundManager: SoundManager)
Link copied to clipboard
open fun provideNarrationLines(): List<Text>

Provides a list of text for appending into a Narration Hint. By default this will use the same lines passed from provideTooltipLines, with predefined values for the inputs

Link copied to clipboard
open override fun provideTooltipLines(mouseX: Int, mouseY: Int, parentSelected: Boolean, keyboardFocused: Boolean): List<Text>

Provides a list of text lines for appending to a tooltip. Unlike appending in MC, the parent has final say on compiling the tooltip from the pieces given to it.

Link copied to clipboard
open override fun render(context: DrawContext, mouseX: Int, mouseY: Int, delta: Float)
Link copied to clipboard
open fun renderBackground(context: DrawContext, x: Int, y: Int, width: Int, height: Int, mouseX: Int, mouseY: Int, delta: Float)

Custom background rendering for the widget. By default, will render the standard MC button texture set.

Link copied to clipboard
open override fun renderCustom(context: DrawContext, x: Int, y: Int, width: Int, height: Int, mouseX: Int, mouseY: Int, delta: Float)

Custom foreground rendering for the widget. By default, will render the label.

Link copied to clipboard
open fun setAlpha(alpha: Float)
Link copied to clipboard
open fun setPosition(x: Int, y: Int)
Link copied to clipboard
open fun setTooltipDelay(delay: Int)
Link copied to clipboard
open fun setWidth(width: Int)